1. Field of the Invention
The present invention relates to a path trace viterbi decoder for carrying out an error correction decode of a convolutional code.
The viterbi decoder is used for a maximum likelihood decoding of a convolutional code, which selects a path having a code distance nearest to a received code series from a plurality of known code series as a most likely path, and generates decoded data on the basis of the selected path. The viterbi decoder is used as an error correction apparatus in satellite communication systems due to its excellent error correction ability.
2. Description of the Related Art
A conventional viterbi decoder, in general, comprises a branch metric calculator, an ACS (Add-Compare-Select) circuit, and a path memory, as main components. The branch metric calculator calculates branch metrics for every node on the basis of the received code. The ACS circuit comprises a plurality of ACS units provided for every node, and each ACS unit calculates two path metrics of two paths reaching a node corresponding to the ACS unit in question, compares the calculated path metrics to select a surviving path from the two paths, and outputs a path select signal which indicates the surviving path. The path memory receives the path select signals from the ACS circuit, and stores a most likely path history on the basis of the path select signals.
The path memory comprises memory cells, having a selector and a flip-flop, and connected in cascade over the path history length. However, it is difficult to integrate such a path memory.
On the other hand, the path memory may comprise a RAM (Random Access Memory). However, in this case, the number of times the RAM must be accessed for one decoding cycle in which one symbol is decoded is high, and therefore, the decoding rate is lowered.
To solve these problems there is provided a trace back type path trace viterbi decoder which may be integrated using a RAM as the path memory. With such a decoder the decoding rate increased over the above RAM decoder. The trace back type viterbi decoder calculates the node number of the node selected as a survivor at a previous trellis level, on the basis of the node number of the node having a minimum path metric and a path selecting signal corresponding to the above node at beginning of the tracing, calculates the surviving node at a further previous level of the calculated node number, repeats this calculation over the path history length (i.e., the length of the path memory) to obtain the most likely path, and generates a decoded signal on the basis of the node number of the final node to which the most likely path finally extends.
This viterbi decoder, however, must trace the most likely path over the whole length of the path history to obtain the decoded signal of one symbol, and accordingly it must access the path memory many times. As a result, the decoding rate is not sufficiently high.